<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    var str = "adg123uigv456ibo457fdj";
        //     ↑

    // var reg1 = /\d/;
    // var reg2 = /\d/g;


    // 查询第一次出现的位置的索引
    // console.log(str.search(reg1));
    // console.log(str.search(reg1));

    // 将符合正则的字符放在一个数组中
    // 不全局匹配只能找到第一个符合正则的字符
    // console.log(str.match(reg1));
    // 全局匹配可以找到所有符合正则的字符
    // console.log(str.match(reg2));

    // exec的正则不全局匹配，每次执行得到的结果都是固定的
    // console.log(reg1.exec(str));
    // console.log(reg1.exec(str));
    
    // exec的正则全局匹配，每次执行都是在上次查询结束的位置，继续查询
    // console.log(reg2.exec(str));
    // // 查询结束的位置（下次查询开始的位置）
    // console.log(reg2.lastIndex);
    // // 主动设置下次查询开始的位置
    // reg2.lastIndex = 0;
    
    // console.log(reg2.exec(str));
    // console.log(reg2.lastIndex);
    
    // reg2.lastIndex = 0;

    // exec返回的数组中的第0个数据，是完整正则查询到的数据
    // exec返回的数组中的第1个数据，是正则的第一个子串查询到的数据
    // exec返回的数组中的第2个数据，是正则的第二个子串查询到的数据
    // ...

    // var reg3 = /(\d[a-z])([a-z])/g;
    // console.log(reg3.exec(str));
    // console.log(reg3.exec(str));
    // console.log(reg3.exec(str));

</script>
</html>